Appearance
系统环境是:Centos 7
参考:
Kafka 是一个分布式的基于发布/订阅模式的消息中间件,在业界主要应用于大数据实时流式计算领域,起解耦合和削峰填谷的作用。
在 Kafka 2.8 之前,Kafka 其重度依赖于 Zookeeper
安装操作: https://www.cnblogs.com/paopaoT/p/17461562.html
这里跳过上述操作,直接使用 docker 安装 kafka
一、Kafka 服务的安装与测试使用步骤
安装手册: https://developer.aliyun.com/article/1318521
拉取 ZooKeeper
docker pull wurstmeister/zookeeper改一下挂载文件目录
启动 ZooKeeper 服务
#创建对应的目录来挂载Zookeeper,个人是放在 /root/RunEnvironment/zookeeper 目录下
docker run -d --name zookeeper -p 2181:2181 -v /root/RunEnvironment/zookeeper:/data --restart always wurstmeister/zookeeper- p 2181:2181 # 对端口进行映射,将本地2181端口映射到容器内部的2181端口
- – name # 设置创建的容器名称 -v # 将本地目录(文件)挂载到容器指定目录;
- – restart always # 始终重新启动zookeeper
拉取Kafka
docker pull wurstmeister/kafka启动 Kafka
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=【ZooKeeper地址】:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://【kafka地址】:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka实际使用的时候是讲两个服务的地址都改为了服务器的IP地址,然后启动运行
打开 Portainer 中的容器管理,选择进入容器
测试:
创建一个名为“testTopic”的topic,它有一个分区和一个副本
# 创建主题
kafka-topics.sh --create --zookeeper zookeeper地址:2181 --replication-factor 1 --partitions 1 --topic testTopic
# 列出所有主题来验证创建成功
kafka-topics.sh --list --zookeeper zookeeper地址:2181
#发送消息
kafka-console-producer.sh --broker-list kafka地址:9092 --topic testTopic
#启动一个 consumer,将消息转储到标准输出
#从指定的Kafka集群的`testTopic`主题中,从最开始的消息起,消费并在控制台显示所有消息
kafka-console-consumer.sh --bootstrap-server kafka地址:9092 --topic testTopic --from-beginning--from-beginning:这个参数告诉消费者从主题的起始位置开始消费消息。如果不指定此参数,那么消费者将从最新的消息开始消费,即只消费自消费者启动之后发布到主题的新消息。
实际运行的时候需要讲上述命令的IP地址换为服务器的地址:
kafka-topics.sh --create --zookeeper 192.168.31.43:2181 --replication-factor 1 --partitions 1 --topic testTopic
kafka-topics.sh --list --zookeeper 192.168.31.43:2181
kafka-console-producer.sh --broker-list 192.168.31.43:9092 --topic testTopic
kafka-console-consumer.sh --bootstrap-server 192.168.31.43:9092 --topic testTopic --from-beginning还看到一种方式是通过 docker-compose.yml 的操作讲上述串联起来,后续有兴趣可以研究一下。